﻿#pragma once
#include "EventLoop.h"
#include <stdbool.h>
#include "WorkerThread.h"

// 定义线程池
struct ThreadPool
{
	// 主线程的反应堆模型
	struct EventLoop* mainLoop;// 只负责与客户端建立连接
	bool isStart;
	int threadNum;//子线程数量
	struct WorkerThread* workerThreads;//子线程数组，运行中动态分配空间大小
	int index;//工作线程的编号，数组的下标
};

// 初始化线程池
struct ThreadPool* threadPoolInit(struct EventLoop* mainLoop, int count);
// 启动线程池
void threadPoolRun(struct ThreadPool* pool);
// 取出线程池中的某个子线程的反应堆实例
struct EventLoop* takeWorkerEventLoop(struct ThreadPool* pool);